import { setupRouter } from '@/common/router' // 引入路由
import { createStore } from '@/store' // 引入状态
import * as Pinia from 'pinia'
import { createPinia } from 'pinia'
import { createUnistorage } from 'pinia-plugin-unistorage'
import { createSSRApp } from 'vue'
import App from './App.vue'

// 保存图片到系统相册
// #ifdef H5
import '@/common/ican-H5Api/ican-H5Api' // 对齐H5的部分API，保持API通用跨平台
// #endif

// 全局混入
import mixins from '@/mixins/'
// 全局指令
import directive from '@/directive/'
// 注册uView
import uView from '@/uni_modules/uview-ui'
// 注册全局容器
import page from '@/components/global/page.vue'

export function createApp() {
	// 创建App应用
	const app = createSSRApp(App)
	// pinia状态管理
	const pinia = createPinia()
	// 注册全局容器
	app.component('page', page)
	// 全局混入
	app.mixin(mixins)
	// 使用持久化插件
	pinia.use(createUnistorage())
	// 使用 uView UI
	app.use(uView)
	// 使用状态管理
	app.use(pinia)
	// 注册全局指令
	directive(app)
	// 注册router
	setupRouter(app)
	// 全局注册
	createStore()
	return {
		app,
		Pinia // 此处必须将 Pinia 返回
	}
}
